Feat/backend - #11
Merged
Merged
Conversation
Previously exposed as 8 independent sub-skills under skills/makers-*/. Move all capabilities under skills/edgeone-makers-tools/references/<name>/ and turn the top-level SKILL.md into a router. Update manifests, hooks, build script, and top-level docs (README/CLAUDE.md/AGENTS.md) to the new layout. Also fix the makers-migration cross-links whose display labels still said "skills/" while URLs already used "references/". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…dless The previous decision table sent any "non-interactive (Agent/CI/headless)" context to Token login, which caused Agent-driven skill runs inside WorkBuddy (a desktop IDE sandbox that bridges browser + OAuth callback) to skip the working browser flow and demand an API Token. Switch to a browser-first strategy: always attempt edgeone login --site <x> first; only fall back to Token when the browser doesn't open or nothing happens within ~60 seconds, or when the user explicitly requests a token. Add a WorkBuddy-specific callout in env-adaption clarifying that CLI interactive prompts hang (still need non-interactive flags) but browser login itself works. Simplify Rule 6 back to a one-line principle and turn the "Detect environment" sub-table into a reference-only "Login methods" table so Rule 6 stays the single decision entry point. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…g block The prior rule demanded the URL be placed "at the very top of your reply". That was ambiguous — "reply" could be read as the full agent output including chain-of-thought, so the URL sometimes ended up only inside thinking / "深度思考" blocks that are collapsed and invisible to the user. The "very top" prescription also fought natural reply flow when the deploy was not the sole deliverable. Reframe the rule around what actually matters: the URL must appear in the user-visible reply body, in a prominent format (own line / code block / heading, not inline). Thinking blocks explicitly do not count as "shown". Drop the "top of reply" prescription. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… cap Two related gaps surfaced from a real session where the account had hit the EdgeOne Makers 40-project cap. The CLI returned "Failed to create pages project" (from makers dev) and "Makers project exceeds 40 limit" (from makers deploy). The agent paraphrased both into "maybe a name conflict or permission" and silently pivoted from dev to deploy — which failed for the exact same reason. The user only learned the real cause after explicitly asking. Add: - Critical Rule 9: on any CLI failure, quote the raw error to the user before retrying, pivoting, or proposing a workaround. Don't paraphrase and don't silently switch commands hoping to bypass a systemic failure (auth / quota / permission hits both dev and deploy the same way). - Error Handling row for the 40-project cap covering both dev and deploy symptoms, with two unblock paths (free a slot in console, or deploy into an existing linked project via -n). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…jects When a project uses Blob/KV, bare edgeone makers dev drops into an interactive "Link existing / Create and link" picker that hangs in non-interactive sandboxes (WorkBuddy, CI). The CLI already handles auto-create + internal link when -n is supplied; there is no need for a separate makers link step. Add proactive guidance so agents pass -n up front instead of learning it from a hang: - makers-storage SKILL: after the login/blob chain note, add a mandatory "-n on Blob/KV projects" callout. - makers-recipes Preview ban: append the same requirement so it fires when the agent is about to trigger the post-development preview. - makers-deploy Error Handling: replace the previous "skip dev, go straight to deploy" advice for the hang symptom with the correct fix (kill dev, restart with -n <project-name> --skip-env-sync). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A real session showed an agent hit the 40-project cap, then bypassed the
CLI to call the undocumented pages-api.cloud.tencent.com DeletePagesProject
endpoint using credentials cached in ~/.edgeone/. The CLI omits a delete
command by design — deletion is destructive and gated to the console UI
so the user reviews and confirms. The previous wording ("delete unused
projects in the EdgeOne console to free a slot") did not close this door
explicitly enough.
Tighten the 40-cap Error Handling row: state that the agent MUST NOT
delete projects via any channel (no CLI, no HTTP APIs, no reuse of cached
credentials). Keep the two user-driven options (console delete, or point
at an existing linked project with -n).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Real session after the previous tightening: the agent still nudged the user by tagging "delete an old project" as (Recommended) and invented a third option "switch to CloudStudio" that has nothing to do with EdgeOne Makers. The prior "User's options: ①/②" wording listed choices but did not forbid annotating them or adding new ones. Tighten the row to require the agent to present ONLY those two options, verbatim, with no "recommended" tag on either and no fabricated third option (call out CloudStudio explicitly since it was the observed one). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… CSS/JS Real session: an app that needed Blob-backed cloud functions still showed a broken skeleton in WorkBuddy's auto-launched file:// preview because the JS tried to fetch APIs that could not exist under file://. The existing "Write HTML last" rule only named style.css and script.js as dependencies, missing cloud functions and other assets. Broaden the rule so it lists every dependency category (CSS, JS, Cloud Functions, static assets) and explicitly ties the goal to minimizing the file:// broken-window duration until makers dev takes over. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…level
The IRON RULE lives at depth-2 in references/blob.md (line 7-9, with 🔒
emoji, bold, "No exceptions"). blob.md itself is clear enough — the
issue is that a weaker model that skims the router (makers-storage
SKILL.md) and starts coding from memory never descends into blob.md and
thus never sees the rule. Real session: model used the string form
getStore("my-store"), which defaults to eventual consistency, and hit
"I just wrote but the next read returns stale/null" bugs on votes and
counters.
Echo the rule as a one-line callout at the router level (right after the
existing "no database" and "-n on Blob/KV" callouts) so shallow readers
still get hit by it. blob.md remains the source of truth for full
rationale.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…nt_files Real session: the previous rewrite of Rule 4 relaxed "at the very top of your reply" to "prominent, position is a judgment call". Under short replies that was fine, but WorkBuddy's chat card auto-collapses long replies — a URL placed mid-reply, however prominent, still got folded into the "查看所有变更" summary entry and hidden from the user. Same failure mode as thinking blocks, different trigger. Restore the top-of-reply requirement AND add present_files pinning as a mandatory second channel. The side panel is not affected by chat folding, so it's the belt-and-suspenders always-visible surface. This also aligns the deploy-time URL with the dev-time URL flow, where present_files is already required to pin http://127.0.0.1:8088/. Update the parallel "Show the user" instruction in the deploy output section to match Rule 4. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…orkBuddy preview
Real session: a delete button used window.confirm("Delete?") to gate the
action. In WorkBuddy's built-in preview panel, confirm() returns without
showing a dialog and without user interaction, so the handler silently
no-oped — the button appeared broken. The same page worked in the user's
real Chrome after deploy.
Add §13 to the WorkBuddy Sandbox Environment section: native
alert/confirm/prompt are not rendered in the preview panel; use in-page
custom modals for any confirmation, prompt, or notification. Clarifies
that the failure only affects the WorkBuddy preview, not the user's real
browser — otherwise the code looks correct in review.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Real session with a weaker model (DeepSeek V4): the deep-think block literally said "Deploy successful! Let me now present this to the user" and contained URL: https://...edgeone.cool?..., but the visible reply body was just "部署成功!" with everything else folded into 查看所有变更 summary. The model believed writing the URL in its reasoning satisfied the presentation requirement. Rule 4 already specified placement (top of visible body + present_files side panel) but did not require the agent to verify placement before ending the turn. Add a mandatory self-check step: read back what the user will actually see (not the reasoning content), verify both channels carry the URL, and if either is missing, send an additional short follow-up message with the URL block and re-call present_files. Reject "I already mentioned it in my reasoning" as a valid excuse. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Pre-release audit uncovered four blockers/consistency issues carried over from the earlier 8-skills → 1-skill consolidation. Address all four: 1. _meta.json listed 39 legacy paths under skills/makers-*/, none of which still exist. SkillHub installs would receive a broken package. Regenerate the files list from the current tree (46 entries, including the makers-migration/references/* additions). 2. Three markdown links pointed to a same-directory "kv-storage.md" that never existed post-restructure. The actual file is makers-storage/references/kv.md. Repoint both makers-edge-functions references and the makers-recipes reference to ../makers-storage/references/kv.md. 3. Three SKILL frontmatter names (makers-cli, makers-cloud-functions, makers-migration) lacked the edgeone- prefix that the other seven already use. Align them so name-based routing / validation is consistent. 4. Version numbers were split: manifests carried 1.0.0 while _meta.json and top-level SKILL.md carried 1.0.4. Bump every carrier to 2.0.0 (major bump reflects the breaking layout change from 8 sibling skills to a single router). Regenerated codex/*.md and cursor/rules/*.mdc mirrors to reflect the renamed frontmatter names in the affected SKILLs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A. 结构重构(1 commit,breaking change)
B. 登录 & 环境判定(2 commits)
C. 部署 URL 展示(4 commits,规则演进)
按时间顺序看,这条规则被逐步收紧了三轮,每轮都对着一个真实翻车 case:
D. 40-project cap 处理(3 commits)
E. 内容一致性(2 commits)
F. 发布准备(1 commit)
breaking)。